package com.ymatou.iapi.synctrade.parameter.mongo;

import java.math.BigDecimal;
import java.util.Date;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Field;

import com.ymttest.database.model.annotation.Column;
import com.ymttest.database.model.annotation.Table;

/**
 * 买家索引
 */
public class UserIndex {

	/**
	 * 订单ID
	 */
	@Table("Ymt_Orders")
	@Column("iOrderId")
	@Id
	private Long id;
	/**
	 * 买家ID
	 */
	@Table("Ymt_Orders")
	@Column("iUserId")
	@Field("user")
	private Long userId;

	/**
	 * 卖家ID
	 */
	@Table("Ymt_Orders")
	@Column("iBuyerid")
	@Field("seller")
	private Long sellerId;

	/**
	 * 主单ID
	 */
	@Table("Ymt_Orders")
	@Column("iMainOrderId")
	@Field("main")
	private Long mainOrderId;

	/**
	 * order
	 * 交易ID
	 */
	@Table("Ymt_Orders")
	@Column("iTradingId")
	@Field("trdId")
	private Long tradingId;

	/**
	 * 订单状态
	 */
	@Table("Ymt_Orders")
	@Column("iTradingStatus")
	@Field("st")
	private Integer tradingStatus;

	/**
	 * 下单时间
	 */
	@Table("Ymt_Orders")
	@Column("dAddTime")
	@Field("addTm")
	private Date addTime;

	/**
	 * 付款时间
	 */
	@Table("Ymt_Orders")
	@Column("dPaidTime")
	@Field("paidTm")
	private Date paidTime;

	/**
	 * 是否删除
	 */
	@Table("Ymt_Orders")
	@Column("bDeleted")
	@Field("del")
	private boolean deleted;
	
	/**
	 * app内平台立减优惠
	 */
	@Table("Ymt_Orders")
	@Field("payDeductAmt")
	private BigDecimal payDeductAmount;

	/**
	 * 能够评价且未评价 (Order表 CAN_EVALUATE && !EVALUATED)
	 */
	@Table("Ymt_Orders")
	@Field("eva")
	private boolean needsEvaluate;

	/**
	 * 收货时间
	 */
	@Table("Ymt_Orders")
	@Column("dConfirmedTime")
	@Field("recvTm")
	private Date receiveTime;

	/**
	 * 插入时间
	 */
	@Field("aT")
	private Date timeMongoAdd;

	/**
	 * 更新时间
	 */
	@Field("uT")
	private Date timeMongoUpdate;
	
	/**
	 * 推手ID
	 */
	@Field("hunterId")
	private Long hunterId;
	
	/**
	 * 1： 大礼包；2：普通商品
	 */
	@Field("hOrdTp")
	private Integer hunterOrderType;
	
	/**
	 * 是否预售活动订单
	 */
	@Field("bkOrder")
	private boolean bookingOrder;
	
	/**
	 * 预售订单是否能确认
	 */
	@Field("canCfm")
	private boolean canConfirm;
	
	/**
	 * 订单类型
	 */
	@Field("ot")
	private Integer orderType;
	
	/**
	 * 业务类型
	 */
	@Field("bizTp")
	private Integer bizType;
	
	/**
	 * 支付渠道
	 */
	@Field("payChl")
	private String payChannel;
	
	/**
     * 是否自提
     */
    @Field("puInSto")
    private Boolean pickupInStores;
    
    /**
     * entry_time TIMESTAMP(19)<br>
     * 入境时间
     */
    @Field("entryTime")
    private Date entryTime;
    
    /**
     * shenqiRmbAmount TIMESTAMP(19)<br>
     * 
     */
    @Field("sqRMBAmt")
    private BigDecimal shenqiRmbAmount;
    
    /**
     * 是否奢品
     * 
     */
    @Field("lux")
    private Boolean luxury;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getUserId() {
		return userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public Long getMainOrderId() {
		return mainOrderId;
	}

	public void setMainOrderId(Long mainOrderId) {
		this.mainOrderId = mainOrderId;
	}

	public Long getTradingId() {
		return tradingId;
	}

	public void setTradingId(Long tradingId) {
		this.tradingId = tradingId;
	}

	public Integer getTradingStatus() {
		return tradingStatus;
	}

	public void setTradingStatus(Integer tradingStatus) {
		this.tradingStatus = tradingStatus;
	}

	public Date getAddTime() {
		return addTime;
	}

	public void setAddTime(Date addTime) {
		this.addTime = addTime;
	}

	public Date getPaidTime() {
		return paidTime;
	}

	public void setPaidTime(Date paidTime) {
		this.paidTime = paidTime;
	}

	public boolean getDeleted() {
		return deleted;
	}

	public void setDeleted(boolean deleted) {
		this.deleted = deleted;
	}

	public boolean getNeedsEvaluate() {
		return needsEvaluate;
	}

	public void setNeedsEvaluate(boolean needsEvaluate) {
		this.needsEvaluate = needsEvaluate;
	}

	public Date getReceiveTime() {
		return receiveTime;
	}

	public void setReceiveTime(Date receiveTime) {
		this.receiveTime = receiveTime;
	}

	public Date getTimeMongoAdd() {
		return timeMongoAdd;
	}

	public void setTimeMongoAdd(Date timeMongoAdd) {
		this.timeMongoAdd = timeMongoAdd;
	}

	public Date getTimeMongoUpdate() {
		return timeMongoUpdate;
	}

	public void setTimeMongoUpdate(Date timeMongoUpdate) {
		this.timeMongoUpdate = timeMongoUpdate;
	}

	public Long getSellerId() {
		return sellerId;
	}

	public void setSellerId(Long sellerId) {
		this.sellerId = sellerId;
	}

	public BigDecimal getPayDeductAmount() {
		return payDeductAmount;
	}

	public void setPayDeductAmount(BigDecimal payDeductAmount) {
		this.payDeductAmount = payDeductAmount;
	}

	public Long getHunterId() {
		return hunterId;
	}

	public void setHunterId(Long hunterId) {
		this.hunterId = hunterId;
	}

	public Integer getHunterOrderType() {
		return hunterOrderType;
	}

	public void setHunterOrderType(Integer hunterOrderType) {
		this.hunterOrderType = hunterOrderType;
	}

	public boolean isBookingOrder() {
		return bookingOrder;
	}

	public void setBookingOrder(boolean bookingOrder) {
		this.bookingOrder = bookingOrder;
	}

	public boolean isCanConfirm() {
		return canConfirm;
	}

	public void setCanConfirm(boolean canConfirm) {
		this.canConfirm = canConfirm;
	}

	public Integer getOrderType() {
		return orderType;
	}

	public void setOrderType(Integer orderType) {
		this.orderType = orderType;
	}

	public Integer getBizType() {
		return bizType;
	}

	public void setBizType(Integer bizType) {
		this.bizType = bizType;
	}

	public String getPayChannel() {
		return payChannel;
	}

	public void setPayChannel(String payChannel) {
		this.payChannel = payChannel;
	}

	public Boolean getPickupInStores() {
		return pickupInStores;
	}

	public void setPickupInStores(Boolean pickupInStores) {
		this.pickupInStores = pickupInStores;
	}

	public Date getEntryTime() {
		return entryTime;
	}

	public void setEntryTime(Date entryTime) {
		this.entryTime = entryTime;
	}

	public BigDecimal getShenqiRmbAmount() {
		return shenqiRmbAmount;
	}

	public void setShenqiRmbAmount(BigDecimal shenqiRmbAmount) {
		this.shenqiRmbAmount = shenqiRmbAmount;
	}

	public Boolean getLuxury() {
		return luxury;
	}

	public void setLuxury(Boolean luxury) {
		this.luxury = luxury;
	}
}
